home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / guis für programme / soxgui12 / soxgui.b < prev    next >
Text File  |  1996-04-07  |  13KB  |  563 lines

  1. 'SoxGui 1.2  25.05.1995 by Stephan Klein
  2. 'a graphical user-interface to Amisox 3.3
  3.  
  4. 'Mit WBarg.o linken"
  5. 'Faltmarkierung für GoldEd: ''
  6.  
  7. ''--Init--
  8. #include "ACEInclude:NewWBarg.h"
  9. DECLARE SUB GoXY(x,y)
  10. DECLARE SUB STRING GetPath$(STRING Pfad$)
  11.  
  12. SHORTINT theGad, avg, rev, ech, vib, ban, hig, low, vol,n
  13. SHORTINT edelay,evolume,vspeed,vdepth,bcenter,bwidth,bn,hcenter,lcenter,volvolume
  14. SHORTINT flag
  15. STRING file$,in$, inpath$, out$, outpath$, thearg$, soxname$, playname$
  16. avg=0 : rev=0 : ech=0 : vib=0 : ban=0 : bn=0 : hig=0 : low=0 : vol=0
  17. flag=1
  18. in$="" : inpath$="" : out$="" : outpath$=""
  19.  
  20. IF WBlaunched THEN
  21.   thearg$=WBargpath$(0)+WBarg$(0)
  22.   soxname$=ToolTypeVal$(thearg$,"SOXPATH")
  23.   playname$=ToolTypeVal$(thearg$,"PLAYERPATH")
  24.   IF soxname$="" THEN
  25.     soxname$="sox"
  26.   END IF
  27.   IF playname$="" THEN
  28.     playname$="play"
  29.   END IF
  30. ELSE
  31.   soxname$="sox"
  32.   playname$="play"
  33. END IF
  34. ''
  35. ''--Window & Bevelboxes--
  36.   WINDOW 2,"SoxGui V1.2",(0,11)-(640,200),30
  37.  
  38.   BEVELBOX (10,5)-(620,40),3     'für Files
  39.   BEVELBOX (120,10)-(550,20),2   'für Inputfile
  40.   BEVELBOX (120,25)-(550,35),2   'für Outputfile
  41.   BEVELBOX (10,45)-(620,140),3   'für Effekte
  42.   BEVELBOX (10,145)-(620,170),3  'für Aktionen
  43.   GoXY(240,8)
  44.   PRINT " Files to work on "
  45.   GoXY(235,48)
  46.   PRINT " Assignable effects "
  47.   GoXY(270,148)
  48.   PRINT " Actions "
  49. ''
  50. ''--Gadgets--
  51.   GADGET 255,ON,"Inputfile" ,(20,10)-(110,20),BUTTON    'Input
  52.   GADGET 254,ON,"Outputfile",(20,25)-(110,35),BUTTON    'Output
  53.   GADGET 253,ON,"Play",(560,10)-(610,20),BUTTON         'Play Input
  54.   GADGET 252,ON,"Play",(560,25)-(610,35),BUTTON         'Play Input
  55.   GADGET 250,ON," ",(20,55)-(40,65),BUTTON              'Average
  56.   GoXY(50,63)
  57.   PRINT"Average"
  58.   GADGET 240,ON," ",(20,65)-(40,75),BUTTON              'Reverse
  59.   GoXY(50,73)
  60.   PRINT"Reverse"
  61.   GADGET 230,ON," ",(20,75)-(40,85),BUTTON              'Echo
  62.   GADGET 229,OFF,1000,(120,75)-(220,84),POTX
  63.   GADGET 228,OFF, 100,(350,75)-(450,84),POTX
  64.   GoXY(50,83)
  65.   PRINT"Echo"
  66.   GoXY(225,83)
  67.   PRINT "Delay:"
  68.   GoXY(455,83)
  69.   PRINT"Volume:"
  70.   GADGET 220,ON," ",(20,85)-(40,95),BUTTON              'Vibro
  71.   GADGET 219,OFF,  30,(120,85)-(220,94),POTX
  72.   GADGET 218,OFF, 100,(350,85)-(450,94),POTX
  73.   GoXY(50,93)
  74.   PRINT"Vibro"
  75.   GoXY(225,93)
  76.   PRINT "Speed:"
  77.   GoXY(455,93)
  78.   PRINT"Depth:"
  79.   GADGET 210,ON," ",(20,95)-(40,105),BUTTON             'Band
  80.   GADGET 209,OFF,15000,(120,95)-(220,104),POTX
  81.   GADGET 208,OFF,3000,(350,95)-(450,104),POTX
  82.   GADGET 207,OFF," ",(560,95)-(580,105),BUTTON
  83.   GoXY(50,103)
  84.   PRINT"Band"
  85.   GoXY(225,103)
  86.   PRINT "Center:"
  87.   GoXY(455,103)
  88.   PRINT"Width:"
  89.   GoXY(585,103)
  90.   PRINT "n"
  91.   GADGET 200,ON," ",(20,105)-(40,115),BUTTON            'Highpass
  92.   GADGET 199,OFF,15000,(120,105)-(220,114),POTX
  93.   GoXY(50,113)
  94.   PRINT"Highpass"
  95.   GoXY(225,113)
  96.   PRINT "Center:"
  97.   GADGET 190,ON," ",(20,115)-(40,125),BUTTON            'Lowpass
  98.   GADGET 189,OFF,15000,(120,115)-(220,124),POTX
  99.   GoXY(50,123)
  100.   PRINT"Lowpass"
  101.   GoXY(225,123)
  102.   PRINT "Center:"
  103.   GADGET 180,ON ," ",( 20,125)-( 40,135),BUTTON            'Lowpass
  104.   GADGET 179,OFF,200,(120,125)-(220,134),POTX
  105.   GoXY(50,133)
  106.   PRINT"Volume"
  107.   GoXY(225,133)
  108.   PRINT "Volume:"
  109.   GADGET 170,ON,"About",(20,150)-(120,165),BUTTON
  110.   GADGET 160,ON,"AMISOX !!!",(130,150)-(500,165),BUTTON
  111.   GADGET 150,ON,"Help",(510,150)-(610,165),BUTTON
  112. ''
  113. ''--Mainloop--
  114. loop:
  115.   GADGET WAIT 0
  116.   theGad = GADGET(1)
  117.   CASE
  118.     theGad=255 : GOSUB GetInFile
  119.     theGad=254 : GOSUB GetOutFile
  120.     theGad=253 : GOSUB PlayInput
  121.     theGad=252 : GOSUB PlayOutput
  122.     theGad=250 : GOSUB Average
  123.     theGad=240 : GOSUB Reverse
  124.     theGad=230 : GOSUB Echo
  125.     theGad=229 : GOSUB Echo2
  126.     theGad=228 : GOSUB Echo3
  127.     theGad=220 : GOSUB Vibro
  128.     theGad=219 : GOSUB Vibro2
  129.     theGad=218 : GOSUB Vibro3
  130.     theGad=210 : GOSUB Band
  131.     theGad=209 : GOSUB Band2
  132.     theGad=208 : GOSUB Band3
  133.     theGad=207 : GOSUB Band4
  134.     theGad=200 : GOSUB Highp
  135.     theGad=199 : GOSUB Highp2
  136.     theGad=190 : GOSUB Lowp
  137.     theGad=189 : GOSUB Lowp2
  138.     theGad=180 : GOSUB Volume
  139.     theGad=179 : GOSUB Volume2
  140.     theGad=170 : GOSUB About
  141.     theGad=160 : GOSUB Sox
  142.     theGad=150 : Gosub Help
  143.     theGad=256 : GOSUB CleanUp
  144.   END CASE
  145.   GOTO loop
  146. ''
  147.  
  148. ''--ClearALL--
  149. ClearAll:
  150.   CASE
  151.     avg=1 : GOSUB Average
  152.     rev=1 : GOSUB Reverse
  153.     ech=1 : GOSUB Echo
  154.     vib=1 : GOSUB Vibro
  155.     ban=1 : GOSUB Band
  156.     hig=1 : GOSUB Highp
  157.     low=1 : GOSUB Lowp
  158.     vol=1 : GOSUB Volume
  159.   END CASE
  160.   RETURN
  161. ''
  162.  
  163. ''--GetInFile--
  164. GetInFile:
  165.   file$=FILEBOX$("Select File ...",inpath$)
  166.   IF file$<>"" THEN
  167.     in$=file$
  168.     GoXY(125,18)
  169.     PRINT SPACE$(53)
  170.     GoXY(125,18)
  171.     PRINT RIGHT$(in$,53)
  172.     inpath$=GetPath$(in$)
  173.   END IF
  174.   RETURN
  175. ''
  176. ''--GetOutFile--
  177. GetOutFile:
  178.   file$=FILEBOX$("Select File ...",outpath$)
  179.   IF file$<>"" THEN
  180.     out$=file$
  181.     GoXY(125,33)
  182.     PRINT SPACE$(53)
  183.     GoXY(125,33)
  184.     PRINT RIGHT$(out$,53)
  185.     outpath$=GetPath$(out$)
  186.   END IF
  187.   RETURN
  188. ''
  189. ''--PlayInput--
  190. PlayInput:
  191.   SYSTEM playname$+" "+CHR$(34)+in$+CHR$(34)
  192. RETURN
  193. ''
  194. ''--PlayOutput--
  195. PlayOutput:
  196.   SYSTEM playname$+" "+CHR$(34)+out$+CHR$(34)
  197. RETURN
  198. ''
  199. ''--Average--
  200. Average:
  201.   GADGET CLOSE 250
  202.   IF avg=1 THEN
  203.     avg=0
  204.     flag=1
  205.     GADGET 250,ON," "    ,(20,55)-(40,65),BUTTON
  206.   ELSE
  207.     GOSUB ClearAll
  208.     avg=1
  209.     GADGET CLOSE 250
  210.     GADGET 250,ON,"*"    ,(20,55)-(40,65),BUTTON
  211.   END IF
  212.   RETURN
  213. ''
  214. ''--Reverse--
  215. Reverse:
  216.   GADGET CLOSE 240
  217.   IF rev=1 THEN
  218.     rev=0
  219.     flag=1
  220.     GADGET 240,ON," "    ,(20,65)-(40,75),BUTTON
  221.   ELSE
  222.     GOSUB ClearAll
  223.     rev=1
  224.     GADGET CLOSE 240
  225.     GADGET 240,ON,"*"    ,(20,65)-(40,75),BUTTON
  226.   END IF
  227.   RETURN
  228. ''
  229. ''--Echo--
  230. Echo:
  231.   GADGET CLOSE 230
  232.   GADGET CLOSE 229
  233.   GADGET CLOSE 228
  234.   IF ech=1 THEN
  235.     ech=0
  236.     flag=1
  237.     GADGET 230,ON," "    ,(20,75)-(40,85),BUTTON
  238.     GADGET 229,OFF,1000,(120,75)-(220,84),POTX
  239.     GADGET 228,OFF, 100,(350,75)-(450,84),POTX
  240.   ELSE
  241.     GOSUB ClearAll
  242.     ech=1
  243.     GADGET CLOSE 230
  244.     GADGET CLOSE 229
  245.     GADGET CLOSE 228
  246.     GADGET 230,ON,"*"    ,(20,75)-(40,85),BUTTON
  247.     GADGET 229,ON,1000,(120,75)-(220,84),POTX
  248.     GADGET 228,ON, 100,(350,75)-(450,84),POTX
  249.     GADGET MOD 229,edelay
  250.     GADGET MOD 228,evolume
  251.   END IF
  252.   RETURN
  253.  
  254. Echo2:
  255.   edelay=GADGET(3)
  256.   GoXY(280,83)
  257.   PRINT"       "
  258.   GoXY(280,83)
  259.   PRINT STR$(edelay)+"ms"
  260.   RETURN
  261.  
  262. Echo3:
  263.   evolume=GADGET(3)
  264.   GoXY(510,83)
  265.   PRINT"     "
  266.   GoXY(510,83)
  267.   PRINT STR$(evolume)+"%"
  268.   RETURN
  269. ''
  270. ''--Vibro--
  271. Vibro:
  272.   GADGET CLOSE 220
  273.   GADGET CLOSE 219
  274.   GADGET CLOSE 218
  275.   IF vib=1 THEN
  276.     vib=0
  277.     flag=1
  278.     GADGET 220,ON," "    ,(20,85)-(40,95),BUTTON
  279.     GADGET 219,OFF,  30,(120,85)-(220,94),POTX
  280.     GADGET 218,OFF, 100,(350,85)-(450,94),POTX
  281.   ELSE
  282.     GOSUB ClearAll
  283.     vib=1
  284.     GADGET CLOSE 220
  285.     GADGET CLOSE 219
  286.     GADGET CLOSE 218
  287.     GADGET 220,ON,"*"    ,(20,85)-(40,95),BUTTON
  288.     GADGET 219,ON,  30,(120,85)-(220,94),POTX
  289.     GADGET 218,ON, 100,(350,85)-(450,94),POTX
  290.     GADGET MOD 219,vspeed
  291.     GADGET MOD 218,vdepth
  292.   END IF
  293.   RETURN
  294.  
  295. Vibro2:
  296.   vspeed=GADGET(3)
  297.   GoXY(280,93)
  298.   PRINT"   "
  299.   GoXY(280,93)
  300.   PRINT vspeed
  301.   RETURN
  302.  
  303. Vibro3:
  304.   vdepth=GADGET(3)
  305.   GoXY(510,93)
  306.   PRINT"      "
  307.   GoXY(510,93)
  308.   PRINT STR$(vdepth)+"%"
  309.   RETURN
  310. ''
  311. ''--Band--
  312. Band:
  313.   GADGET CLOSE 210
  314.   GADGET CLOSE 209
  315.   GADGET CLOSE 208
  316.   GADGET CLOSE 207
  317.   IF ban=1 THEN
  318.     ban=0
  319.     flag=1
  320.     GADGET 210,ON," "   ,(20,95)-(40,105),BUTTON
  321.     GADGET 209,OFF,15000,(120,95)-(220,104),POTX
  322.     GADGET 208,OFF, 3000,(350,95)-(450,104),POTX
  323.     GADGET 207,OFF," ",(560,95)-(580,105),BUTTON
  324.   ELSE
  325.     GOSUB ClearAll
  326.     ban=1
  327.     GADGET CLOSE 210
  328.     GADGET CLOSE 209
  329.     GADGET CLOSE 208
  330.     GADGET CLOSE 207
  331.     GADGET 210,ON,"*"  ,(20,95)-(40,105),BUTTON
  332.     GADGET 209,ON,15000,(120,95)-(220,104),POTX
  333.     GADGET 208,ON, 3000,(350,95)-(450,104),POTX
  334.     IF bn=1 THEN
  335.       GADGET 207,ON,"*",(560,95)-(580,105),BUTTON
  336.     ELSE
  337.       GADGET 207,ON," ",(560,95)-(580,105),BUTTON
  338.     END IF
  339.     GADGET MOD 209,bcenter
  340.     GADGET MOD 208,bwidth
  341.   END IF
  342.   RETURN
  343.  
  344. Band2:
  345.   bcenter=GADGET(3)
  346.   GoXY(280,103)
  347.   PRINT"        "
  348.   GoXY(280,103)
  349.   PRINT STR$(bcenter)+"Hz"
  350.   RETURN
  351.  
  352. Band3:
  353.   bwidth=GADGET(3)
  354.   GoXY(510,103)
  355.   PRINT"      "
  356.   GoXY(500,103)
  357.   PRINT STR$(bwidth)+"Hz"
  358.   RETURN
  359.  
  360. Band4:
  361.   GADGET CLOSE 207
  362.   IF bn=1 THEN
  363.     bn=0
  364.     GADGET 207,ON," ",(560,95)-(580,105),BUTTON
  365.   ELSE
  366.     bn=1
  367.     GADGET 207,ON,"*",(560,95)-(580,105),BUTTON
  368.   END IF
  369.   RETURN
  370. ''
  371. ''--Highp--
  372. Highp:
  373.   GADGET CLOSE 200
  374.   GADGET CLOSE 199
  375.   IF hig=1 THEN
  376.     hig=0
  377.     flag=1
  378.     GADGET 200,ON," "    ,(20,105)-(40,115),BUTTON
  379.     GADGET 199,OFF,15000,(120,105)-(220,114),POTX
  380.   ELSE
  381.     GOSUB ClearAll
  382.     hig=1
  383.     GADGET CLOSE 200
  384.     GADGET CLOSE 199
  385.     GADGET 200,ON,"*"    ,(20,105)-(40,115),BUTTON
  386.     GADGET 199,ON,15000,(120,105)-(220,114),POTX
  387.     GADGET MOD 199,hcenter
  388.   END IF
  389.   RETURN
  390.  
  391. Highp2:
  392.   hcenter=GADGET(3)
  393.   GoXY(280,113)
  394.   PRINT"        "
  395.   GoXY(280,113)
  396.   PRINT STR$(hcenter)+"Hz"
  397.   RETURN
  398. ''
  399. ''--Lowp--
  400. Lowp:
  401.   GADGET CLOSE 190
  402.   GADGET CLOSE 189
  403.   IF low=1 THEN
  404.     low=0
  405.     flag=1
  406.     GADGET 190,ON," "    ,(20,115)-(40,125),BUTTON
  407.     GADGET 189,OFF,15000,(120,115)-(220,124),POTX
  408.   ELSE
  409.     GOSUB ClearAll
  410.     low=1
  411.     GADGET CLOSE 190
  412.     GADGET CLOSE 189
  413.     GADGET 190,ON,"*"    ,(20,115)-(40,125),BUTTON
  414.     GADGET 189,ON,15000,(120,115)-(220,124),POTX
  415.     GADGET MOD 189,lcenter
  416.   END IF
  417.   RETURN
  418.  
  419. Lowp2:
  420.   lcenter=GADGET(3)
  421.   GoXY(280,123)
  422.   PRINT"        "
  423.   GoXY(280,123)
  424.   PRINT STR$(lcenter)+"Hz"
  425.   RETURN
  426. ''
  427. ''--Volume--
  428. Volume:
  429.   GADGET CLOSE 180
  430.   GADGET CLOSE 179
  431.   IF vol=1 THEN
  432.     vol=0
  433.     flag=1
  434.     GADGET 180,ON," " ,(20,125)-(40,135),BUTTON
  435.     GADGET 179,OFF,200,(120,125)-(220,134),POTX
  436.   ELSE
  437.     GOSUB ClearAll
  438.     vol=1
  439.     GADGET CLOSE 180
  440.     GADGET CLOSE 179
  441.     GADGET 180,ON,"*",(20,125)-(40,135),BUTTON
  442.     GADGET 179,ON,200,(120,125)-(220,134),POTX
  443.     GADGET MOD 179,volvolume
  444.   END IF
  445.   RETURN
  446.  
  447. Volume2:
  448.   volvolume=GADGET(3)
  449.   GoXY(280,133)
  450.   PRINT"     "
  451.   GoXY(280,133)
  452.   PRINT STR$(volvolume)+"%"
  453.   RETURN
  454. ''
  455. ''--About--
  456. About:
  457.   MSGBOX "SoxGui 1.2 by Stephan Klein 25.05.95","OK"
  458.   RETURN
  459. ''
  460. ''--Sox--
  461. Sox:
  462.   IF (In$<>"") AND (Out$<>"") THEN
  463.     OPEN "O",254,"RAM:DoSox.bat"
  464.     PRINT #254,"failat 11"
  465.     PRINT #254,"echo "+CHR$(34)+"*E[0;0H*E[J"+CHR$(34) '..cls
  466.     PRINT #254,"prompt "+CHR$(34)+CHR$(34)
  467.     PRINT #254,"stack 40000"
  468.     IF rev=1 THEN
  469.       flag=0
  470.       PRINT #254,soxname$+" -V "+CHR$(34)+In$+CHR$(34)+" "+CHR$(34)+Out$+CHR$(34)+" reverse"
  471.     END IF
  472.     IF avg=1 THEN
  473.       flag=0
  474.       PRINT #254,soxname$+" -V "+CHR$(34)+In$+CHR$(34)+" "+CHR$(34)+Out$+CHR$(34)+" avg"
  475.     END IF
  476.     IF ech=1 THEN
  477.       flag=0
  478.       PRINT #254,soxname$+" -V "+CHR$(34)+In$+CHR$(34)+" "+CHR$(34)+Out$+CHR$(34)+" echo "+STR$(edelay/1000)+" "+STR$(evolume/100)
  479.     END IF
  480.     IF vib=1 THEN
  481.       flag=0
  482.       PRINT #254,soxname$+" -V "+CHR$(34)+In$+CHR$(34)+" "+CHR$(34)+Out$+CHR$(34)+" vibro "+STR$(vspeed)+" "+STR$(vdepth/100)
  483.     END IF
  484.     IF ban=1 THEN
  485.       IF bn=0 THEN
  486.         PRINT #254,soxname$+" -V "+CHR$(34)+In$+CHR$(34)+" "+CHR$(34)+Out$+CHR$(34)+" band "+STR$(bcenter)+" "+STR$(bwidth)
  487.       ELSE
  488.         PRINT #254,soxname$+" -V "+CHR$(34)+In$+CHR$(34)+" "+CHR$(34)+Out$+CHR$(34)+" band -n "+STR$(bcenter)+" "+STR$(bwidth)
  489.       END IF
  490.       flag=0
  491.     END IF
  492.     IF hig=1 THEN
  493.       flag=0
  494.       PRINT #254,soxname$+" -V "+CHR$(34)+In$+CHR$(34)+" "+CHR$(34)+Out$+CHR$(34)+" highp "+STR$(hcenter)
  495.     END IF
  496.     IF low=1 THEN
  497.       flag=0
  498.       PRINT #254,soxname$+" -V "+CHR$(34)+In$+CHR$(34)+" "+CHR$(34)+Out$+CHR$(34)+" lowp "+STR$(lcenter)
  499.     END IF
  500.     IF vol=1 THEN
  501.       flag=0
  502.       PRINT #254,soxname$+" -V -v "+STR$(volvolume/100)+" "+CHR$(34)+In$+CHR$(34)+" "+CHR$(34)+Out$+CHR$(34)
  503.     END IF
  504.     IF flag=1 THEN
  505.       PRINT #254,soxname$+" -V "+CHR$(34)+In$+CHR$(34)+" "+CHR$(34)+Out$+CHR$(34)
  506.     END IF
  507.     PRINT #254,"EndCli"
  508.     CLOSE #254
  509.     script$ = "NewShell "+CHR$(34)
  510.     script$ = script$+"CON:0/11/640/189/AmiSox "
  511.     script$ = script$+"/CLOSE"
  512.     script$ = script$+CHR$(34)+" FROM "
  513.     script$ = script$+"RAM:DoSox.bat"
  514.     SYSTEM script$
  515.   ELSE
  516.     dum=MsgBox("Please select files ....","OK")
  517.   END IF
  518.   RETURN
  519. ''
  520. ''--Help--
  521. Help:
  522.   MSGBOX "Sorry, no help in this version","Oh no.."
  523.   RETURN
  524. ''
  525.  
  526. ''--CleanUp--
  527. CleanUp:
  528.   FOR n=255 TO 1 STEP -1
  529.     GADGET CLOSE n
  530.   NEXT
  531.   WINDOW CLOSE 2
  532.   KILL "RAM DISK:DoSox.bat"
  533.   END
  534. ''
  535.  
  536. ''--SUB GoXY(x,y)--
  537. SUB GoXY(x,y)
  538.  
  539. 'Grafikcursor setzten, ohne Linie zu ziehen
  540.  
  541.   PENUP
  542.   SETXY x,y
  543.   PENDOWN
  544. END SUB
  545. ''
  546. ''--SUB GetPath$(Pfad$)--
  547. SUB STRING GetPath$(STRING Pfad$)
  548.  
  549. ' Eingangsvariable : Voller Pfadname mit File
  550. ' Ausgangsvariable : Pfad inklusive ":", aber ohne "/"
  551.  
  552.   FOR i%=len(Pfad$) TO 1 STEP -1
  553.     dummy$=MID$(Pfad$,i%,1)
  554.     IF dummy$="/" OR dummy$=":" THEN
  555.       ende%=i%
  556.       IF dummy$="/" THEN ende%=ende%-1
  557.       EXIT FOR
  558.     END IF
  559.   NEXT
  560.   GetPath$=LEFT$(Pfad$,ende%)
  561. END SUB
  562. ''
  563.